package com.kinggm.service.factory.abs;

/**
 * 工厂方法模式
 */
public abstract class PizzaStore {


    /**
     * @param type 类型
     * @return 披萨
     */
    public Pizza orderPizza(String type){

        Pizza pizza = createPizza(type);
        pizza.prepare();
        pizza.bake();
        pizza.cut();
        pizza.box();
        return pizza;
    }


    /**
     *
     * 提供抽象接口 用来创建产品
     *
     * @param type 披萨类型
     * @return 披萨
     */
    protected abstract Pizza createPizza(String type);


}
